/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package cinemak9.controle;

import cinemak9.modelo.Salas;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author denilson
 */
@WebServlet(name = "CadastrarSalas", urlPatterns = {"/CadastrarSalas"})
public class CadastrarSalas extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        String nome;
        String acessibilidade;
        String msg = "";
        int numero;
        int quantidadeLugares;
        float tamanhoPolegadas;
        String tipoTela;
        String editar = "";
        //try (PrintWriter out = response.getWriter()) {
        try {
            nome = request.getParameter("nome");
            tipoTela = request.getParameter("tipoTela");
            acessibilidade = request.getParameter("acessibilidade");
            editar = request.getParameter("editar");

            /**
             * *********validaçoes no java*******************************
             */
            if ("".equals(nome)) {
                msg = msg + "-  Nome nao informado   ";
            }
            if ("".equals(tipoTela)) {
                msg = msg + "-  Tipo de tela nao Informado   ";
            }

            /**/
            numero = Integer.parseInt(request.getParameter("numero"));
            if (numero < 1) {
                msg = msg + "- Numero da sala invalida   ";
            }
            quantidadeLugares = Integer.parseInt(request.getParameter("quantidadeLugares"));
            if (quantidadeLugares < 1) {
                msg = msg + "-  Quantidade de lugares invalida   ";
            }
            tamanhoPolegadas = Float.parseFloat(request.getParameter("tamanhoPolegadas"));
            if (tamanhoPolegadas < 1) {
                msg = msg + "-  Polegadas da tela invalida   ";
            }
            /**/
            if (!"".equals(msg)) {
                throw new Exception(msg);
            }
            /**
             * **********************************************************
             */
            Salas sala = new Salas();
            sala.setNumero(numero);
            sala.setNome(nome);
            sala.setQuantidadeLugares(quantidadeLugares);
            sala.setTamanhoPolegadas(tamanhoPolegadas);
            sala.setTipoTela(Boolean.parseBoolean(tipoTela));
            sala.setAcessibilidade(acessibilidade);
            
            if(editar.equals("editar")){
                sala.atualizar();
            }else{
                sala.cadastrar();
            }
            request.getRequestDispatcher("ListarSalas").forward(request, response);

        } catch (NumberFormatException e) {
            msg = msg + "-  Os campos numero, quantidade de lugares e tamanho da tela deve ser números   ";
        } catch (Exception e) {
            msg = e.getMessage();
        }
        request.setAttribute("mensagem", msg);
        request.getRequestDispatcher("erro.jsp").forward(request, response);
    }

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
